/**
 * Storage 二次封装
 */
import config from '../config'

export default {
	// 设置一个新的属性存储
	setItem(key, val) {
		let storage = this.getStorage()
		storage[key] = val
		window.localStorage.setItem(config.namespace, JSON.stringify(storage))
	},

	// 获取一个属性的值
	getItem(key) {
		return this.getStorage()[key]
	},

	// 获取整个存储的对象信息
	getStorage() {
		return JSON.parse(window.localStorage.getItem(config.namespace) || '{}')
	},

	// 删除某个属性
	clearItem(key) {
		let storage = this.getStorage()
		delete storage[key]
		// 删除后需要重新存储
		window.localStorage.setItem(config.namespace, JSON.stringify(storage))
	},

	// 删除整个存储的对象
	clearAll() {
		window.localStorage.clear()
	},
}
